Micron Document
██████╗ ███████╗████████╗██╗██████╗ ███████╗██████╗ ██╗ █████╗
██╔══██╗██╔════╝╚══██╔══╝██║██╔══██╗██╔════╝██╔══██╗██║██╔══██╗
██████╔╝█████╗ ██║ ██║██████╔╝█████╗ ██║ ██║██║███████║
██╔══██╗██╔══╝ ██║ ██║██╔═══╝ ██╔══╝ ██║ ██║██║██╔══██║
██║ ██║███████╗ ██║ ██║██║ ███████╗██████╔╝██║██║ ██║
╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═╝╚═╝ ╚══════╝╚═════╝ ╚═╝╚═╝ ╚═╝


🬧 The NomadNet Encyclopedia | Archives | Info
- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b

🔍 Search

¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

Musical Instrument Digital Interface
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
top
mwdaMIDI (mwdqMusical Instrument Digital Interface) è il mwdgprotocollo standard per l'interazione degli mwdwstrumenti musicali mweaelettronici, anche tramite un mweqcomputer.

In Italia acquisisce particolare notorietà grazie al tour negli stadi mwewmwfaAssolo di mwfqClaudio Baglioni del 1986, nel quale l’artista sfrutta in modo innovativo questa tecnologia per esibirsi da solo sul palco, senza band né accompagnamenti.cite-ref-1[1]cite-ref-2[2]

Contents

Storia
Note

──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

Storia

Il protocollo MIDI nacque all'inizio degli mwiqanni ottanta: esso era la risposta all'esigenza di far comunicare tra loro diversi strumenti musicali elettronici, tenendo conto delle caratteristiche di ognuno. Diversi costruttori, ad esempio Oberheim e mwiwRoland, offrivano già sui propri strumenti alcuni sistemi di interfacciamento, tipo CV/gate, DIN sync and Digital Control Bus (DCB). Queste interfacce, basate su algoritmi proprietari, garantivano il funzionamento solo su strumenti dello stesso costruttore, mentre serviva un sistema in grado di garantire il funzionamento su strumenti di costruttori diversi.

Il presidente dalla Roland, Ikutaro Kakehashi, sapeva che la mancanza di standard limitava la crescita del mercato della musica elettronica e quindi chiese aiuto a Dave Smith della mwkqSequential Circuits, che accolse con favore la proposta. Insieme all'ingegnere Chet Wood scrissero il documento mwkgUniversal Synthesizer Interfacecite-ref-3[3], che fu presentato all'mwlwAudio Engineering Society ad Ottobre 1981cite-ref-4[4]. Lo standard fu discusso dai rappresentanti di Roland, Yamaha, Korg e Sequential Circuits e decisero che sarebbero stati utilizzati connettori DIN a cinque poli, la velocità di trasferimento dati a 31,25 kbaud (16Mhz/512) e la scelta del nome: Kakehashi propose di chiamarlo Universal Musical Interface (UMI), ma invece si decise per Musical Instrument Digital Interface (MIDI).cite-ref-5[5]

Il progetto terminato apparve solo due anni dopo: nell'agosto del 1983 le specifiche MIDI furono presentate al pubblico alla fiera mwoqmwogNAMM Show, tenutasi a mwowLos Angeles. L'immediata popolarità dello standard creò divisioni all'interno del comitato fondatore: i produttori americani si unirono nella mwpaMMA (mwpqMIDI Manufactures Association), mentre quelli giapponesi fondarono la mwpgJMA (mwpwJapan MIDI Association). Benché lavorassero su un terreno comune, i due consorzi svilupparono delle caratteristiche non sempre pienamente compatibili tra loro. Queste divergenze furono risolte nel 1985, quando la mwqaIMA (mwqqInternational MIDI Association) pubblicò la versione 1.0 delle specifiche MIDI, istituendo di fatto lo standard del protocollo, e i costruttori che supportano il protocollo MIDI sono riuniti in due associazioni: MMA (costruttori Americani ed Europei) e JMSC (costruttori Giapponesi). Le modifiche da apportare allo standard MIDI vengono discusse e approvate da queste due associazioni. La diffusione delle specifiche MIDI spetta all'IMA (International Midi Association).

La mwqwtastiera mwraPROPHET 600 della SCi (Sequential Circuits inc.) di San Francisco, il primo synth dotato di interfaccia MIDI, fu presentata nel 1983 e costruita su licenza in Italia dalla SIEL di Acquaviva Picena in provincia di Ascoli Piceno nelle Marche, anche se la versione definitiva del protocollo MIDI venne implementata l'anno seguente sulla mwrqYamaha DX7.

Lo mwswstandard MIDI consiste in un mwtaprotocollo per lo scambio di messaggi progettato per l'uso con strumenti musicali elettronici e nella relativa interfaccia fisica. Un collegamento MIDI consiste in una connessione seriale unidirezionale (mwtqsimplex) a loop di corrente, che funziona alla velocità di trasmissione di 31,250 mwtgbps. Ogni collegamento è unidirezionale (da MIDI OUT a MIDI IN); comunicazioni bidirezionali richiedono due connessioni separate.

Il loop è realizzato in modo tale che il lato ricevente sia galvanicamente isolato tramite mwuaoptoisolamento, evitando connessioni dirette di massa tra i dispositivi e riducendo la formazione di anelli di massa, causa di ronzii e interferenze audio. In particolare, il loop di corrente dal lato del trasmettitore pilota il mwuqLED di un accoppiatore ottico nel ricevitore.

L'accoppiatore ottico dev'essere sufficientemente veloce (tra i dispositivi comunemente impiegati vi sono lo mwvaSharp PC900, il mwvq6N136 e, in alcune implementazioni, il mwvg4N32) poiché i tempi di commutazione, spesso asimmetrici tra salita e discesa del segnale, possono introdurre distorsioni temporali. Tali distorsioni si manifestano come variazioni nella durata effettiva dei bit (jitter) e deformazione dei fronti del segnale, che possono compromettere il corretto campionamento da parte dell'interfaccia seriale. Nel caso di connessione in cascata di più dispositivi MIDI (tramite porte THRU), il ritardo e la distorsione del segnale si accumulano progressivamente fino a poter generare errori di trasmissione.

Lo standard MIDI prevede l'uso di connettori circolari a standard mwwaDIN a 5 pin, dei quali solo tre sono utilizzati per la trasmissione del segnale. Questi connettori erano molto diffusi in mwwqEuropa per ogni genere di connessione audio fino agli mwwganni novanta, quando sono stati in gran parte sostituiti dai più pratici mwwwjack. Anche le tastiere dei mwxapersonal computer, oggi dotate di connessione USB, in passato utilizzavano connettori simili (mini-DIN). Il MIDI è rimasto quindi una delle poche applicazioni ancora in uso per questo tipo di connettori.

Lo standard MIDI prevede l'uso di connettori circolari a standard mwxgDIN a 5 pin. Questi connettori erano molto diffusi in mwxwEuropa per ogni genere di connessione audio fino agli mwyaanni novanta, quando sono stati sostituiti dai più pratici mwyqjack. Anche le comunissime tastiere dei mwygpersonal computer, attualmente dotate tutte di connessione USB, in passato utilizzavano quel connettore, poi abbandonato per il mwywmini-DIN. Il MIDI è rimasto quindi una delle poche applicazioni per questo genere di connettori.

Nel 1991 fu deciso uno standard anche per i file delle canzoni e la connettività con le prese mwzqUSB e mwzgFirewire. Nel 2016 fu formata la Midi Associationcite-ref-6[6], una web community, per continuare a portare avanti e supervisionare lo standard. È nel 2019 che viene annunciata l'iniziativa di creare la versione 2.0,cite-ref-7[7] che in seguito verrà presentata ed approvata al NAMM show del 2020.cite-ref-8[8]

Le specifiche MIDI standard

Introduzione

Il termine MIDI indica due aspetti: un mwdglinguaggio informatico, ossia una serie di specifiche che danno vita al mwdwprotocollo, e un'interfaccia hardware che consente il collegamento fisico tra dispositivi.
Il MIDI è nato negli mweqanni ottanta e, sebbene nel tempo siano emersi protocolli dalle prestazioni superiori, è rimasto pressoché inalterato fino al recente rilascio delle specifiche MIDI 2.0 ed è tuttora intensamente utilizzato nella produzione di mwegmusica elettronica. I motivi risiedono probabilmente nel ruolo di standard che ha assunto nell'ambito musicale e nella cura riposta dai progettisti nella stesura delle prime specifiche.

Le caratteristiche del MIDI sono:

• qualità e praticità del sistema: l'integrazione tra eventi audio ed eventi MIDI sì è dimostrata vincente, confermando l'importanza di questo standard nella realizzazione di musica digitale.
• il basso peso dei file (nell'ordine dei mwfwKb) che consente il trasferimento tramite mwgaInternet anche su connessioni con poca banda.
• la qualità delle basi.
• il basso costo: con un investimento minimo o ricorrendo a programmi mwgwfreeware, è possibile realizzare produzioni musicali di buon livello.

L'interfaccia hardware

Gli strumenti musicali e le varie attrezzature MIDI devono essere fisicamente connesse per poter comunicare tra di loro. A questo scopo, lo standard MIDI prevede l'uso di una triade di connettori DIN a 5 poli, di cui solo i 3 poli centrali vengono utilizzati, che tramite un cavo pentapolare consentono il collegamento fisico tra gli strumenti.
I tre connettori vengono distinti come:

• IN: consente al dispositivo di ricevere informazioni.
• OUT: consente al dispositivo di trasmettere informazioni.
• THRU: consente al dispositivo di ritrasmettere i dati ricevuti dalla propria porta IN verso un altro dispositivo.

La reale configurazione dei connettori, per numero e presenza, dipende dalle funzioni per cui uno strumento viene costruito. Su una mwjamaster keyboard, per esempio, è frequente trovare 2 o 3 OUT e nessun THRU, visto che ciò che ci si aspetta da uno strumento del genere è la massima flessibilità nella trasmissione dei dati verso altre attrezzature.

L'interfaccia software: il protocollo MIDI al livello software

Una delle caratteristiche fondamentali del MIDI è l'essere un'interfaccia multicanale.
Grazie a delle applicazioni mwkasoftware chiamate mwkqsequencer, installabili sia in unità mwkghardware specifiche sia in normali mwkwpersonal computer, si possono registrare performance musicali sotto forma di "messaggi MIDI" per poterle successivamente modificare e riascoltare. Il compito di sincronizzare le varie sequenze MIDI è delegato al mwlacodice temporale MIDI, uno standard mondiale per la sincronizzazione della mwlqmusica mwlgdigitale che costituisce un'implementazione del mwlwcodice temporale mwmaSMPTE.

Un file MIDI è un file che contiene dati comunicabili tramite il protocollo MIDI. Il MIDI supporta fino 16 canali. Per spiegare cosa si intende per "canale MIDI" si può utilizzare la seguente metafora: si voglia inviare un messaggio a un collega che pernotta in una delle 16 stanze a disposizione di un hotel; oltre all'indirizzo dell'hotel, si deve specificare anche il numero di stanza del nostro collega se si vuole che il messaggio sia recapitato correttamente. Si pensi di avere un modulo sonoro con la possibilità di suonare fino a 16 suoni diversi contemporaneamente collegato in MIDI a una tastiera musicale e ogni suono è in un canale diverso da 1 a 16: come fare per far eseguire la musica a uno solo di questi suoni? La tastiera deve inviare al modulo, oltre alle note, anche il numero di canale (la stanza dell'hotel) in cui suonare quelle note. Come farlo dipende dal tipo di strumenti utilizzati.
Oltre alle note e alle varie informazioni necessarie alla loro esecuzione è possibile trasmettere in MIDI anche del testo sincronizzato con la musica. Questo aspetto è stato ampiamente sfruttato per mwmwkaraoke. Ai file di questo tipo è spesso cambiata l'estensione da .mid a mwna.kar.

Tipi di dati

• mwoaStatus byte: gli status byte sono numeri di otto mwoqcifre binarie in cui il mwogbit più significativo (Most Significant Bit, MSB) è posto a 1. Questi byte servono ad identificare il tipo di messaggio, ovvero lo scopo dei data byte che li seguono; ad eccezione dei real-time message, un nuovo Status byte obbliga il ricevitore ad adottare un nuovo stato, anche se l'ultimo messaggio non è ancora stato completato.
• mwpaData byte: a seguire gli Status Bytes, ad eccezione dei Real-time message, ci possono essere uno o due Data Byte che trasportano il contenuto del messaggio. I Data byte sono numeri di otto cifre binarie in cui il bit più significativo (Most Significant Bit, MSB) è posto a 0. Per ogni Status byte deve sempre essere spedito il numero di Data Byte corrispondente; il ricevitore del messaggio deve aspettare fino a quando non ha ricevuti tutti i Data byte richiesti dallo Status byte.
• mwpgRunning Status: solo per Voice e Mode Message. Quando uno Status byte viene ricevuto ed elaborato, il ricevitore rimane in quello stato fino alla ricezione di un differente Status Byte; quindi in caso di ripetizione lo Status Byte può essere omesso ed è sufficiente inviare solo i Data Byte. Nel Running Status un messaggio completo consiste unicamente di Data Bytes; il Running Status è particolarmente utile quando si devono spedire lunghe stringhe di Note On/Off, dove "Note On con velocità 0" è usato come Note Off.

Channel message

Un Channel message usa quattro bit nello Status Byte per indirizzare il messaggio a uno dei sedici canali MIDI e quattro bit per definire il messaggio. I channel message sono quindi usati dai ricevitori in un sistema il cui numero di canali corrisponde al numero di canali codificato all'interno dello Status Byte.

Uno strumento può ricevere messaggi MIDI da più di un canale. Il canale sul quale riceve le istruzioni principali è detto "Basic channel". Uno strumento può essere impostato in modo da ricevere dati di esecuzione (performance data) su canali multipli (incluso il basic channel). A questi ci si riferisce come "Voice channel".

Ci sono due tipi di Channel Message:

• mwrqMODE, per definire la risposta degli strumenti ai Voice messages. I mode messages sono spediti sul basic channel di uno strumento;
• mwrwVOICE, per controllare le voci di uno strumento. I voice message sono spediti sui Voice channel.

Channel mode

Un singolo strumento fisico può fungere da diversi strumenti virtuali. In questa trattazione, "strumento" si riferisce a uno strumento virtuale.
I sintetizzatori e altri strumenti contengono elementi di generazione del suono chiamati "voice". L'assegnamento di voice è il processo algoritmico con cui si instradano i note On/Off data dai messaggi MIDI in arrivo alle voice stesse, in modo che le note siano suonate correttamente.

Sono disponibili quattro Mode message per definire le relazioni tra i sedici canali MIDI e i voice assignment dello strumento. Le quattro modalità sono determinate dalle proprietà Omni (On/Off), Poly and Mono. Poly e Mono sono mutuamente esclusive. Omni, quando on, abilita il ricevitore a ricevere Voice message su tutti i Voice Channel. Quando off, il ricevitore accetta solo i Voice Message che provengono da Voice Channel selezionati.

Mono, quando on, riduce l'assegnamento di Voice a solo una Voice per Voice Channel (monophonic). Quando off (Poly on), un certo numero di Voice può essere allocato dal normale algoritmo di Voice assignment del ricevitore.

Ricevitori e trasmettitori MIDI operano con un solo Channel Mode alla volta. Dal momento che un singolo strumento può funzionare come un insieme di strumenti virtuali, esso può avere diversi Basic Channel. Questo strumento si comporta come se fosse più di un ricevitore e ogni ricevitore può essere impostato con un differente Basic Channel. Inoltre ogni ricevitore può essere impostato con diversi Mode, sia attraverso il pannello dei controlli dello strumento sia attraverso Mode message ricevuti sul Basic channel. Sebbene non sia un vero MIDI mode, questa maniera di operare è detta "Multi Mode".

Channel voice

I channel voice message consistono nel carico di informazioni trasmesse tra gli strumenti MIDI. Includono: Note On, Note Off, program change, control change, pitchbend, channel aftertouch e polyphonic key pressure.

Un singolo Note On message consiste di 3 byte, che richiedono mwuq960 μs per la trasmissione. Quando molte note sono suonate allo stesso tempo, i diversi Note On possono richiedere diversi millisecondi per essere trasmessi. Questo può rendere complicato per il MIDI rispondere ad un grande numero di eventi simultanei senza provocare un ritardo lieve, ma udibile. Questo problema si riduce usando il Running Status mode.

Control Rpn & Nrpn

Sono controlli che permettono di gestire estensioni specifiche per il dispositivo o l'applicazione da controllare. I controlli RPN sono specificati dallo standard MIDI, quelli NRPN sono specifici per ogni dispositivo e devono quindi essere documentati nel manuale in dotazione. Sono implementati come successione di Control Change.

NRPN, Non-Registered Parameter Number

Il parametro da modificare è designato tramite i Controller 98 e 99, il valore da inserire è specificato da:

• Controller 6 (Data Entry MSB)
• Controller 38 (Data Entry LSB)

In alternativa si può usare:

• Controller 96 (Data Increment)
• Controller 97 (Data Decrement)

RPN, Registered Parameter Number

Il parametro da modificare è designato tramite i Controller 100 e 101, il valore da inserire è specificato dagli stessi controller degli NRPN.

System message

I System message non sono codificati con i numeri di canale. Ci sono tipicamente tre tipi di System Message.

• mwywSystem Common message: i common message riguardano tutti i ricevitori in un sistema indipendentemente dal canale.
• mwzqSystem Real message: sono usati per la sincronizzazione e sono destinati a tutte le unità basate sul clock (clock-based) in un sistema; contengono solamente lo status byte, non ci sono data byte.
• mwzwSystem Exclusive message: possono contenere un numero qualsiasi di data byte e possono terminare sia con un "End Of Exclusive" (EOX) o con un qualsiasi status byte ad eccezione dei RealTime message.

Struttura del file MIDI

Il file MIDI e le sue strutture fondamentali

Il file MIDI, o più formalmente mw0wStandard Midi File (SMF), è un archivio contenente dati, informazioni espresse in uno o più byte. Queste informazioni organizzano un sistema compiuto di regole, il protocollo (o codice) MIDI, e sono comprensibili dai programmi-lettori MIDI (sequencer), che le riconoscono e le interpretano come mw1aistruzioni da eseguire.

Le specifiche dello SMF furono sviluppate dalla mw1gMIDI Manufacturers Association (MMA).

Il file MIDI è composto da complesse strutture, chiamate mw2aTrack Chunk ("blocco-traccia"), formate da un certo numero di byte (informazioni-istruzioni). Questi Blocchi sono parti fondamentali e pertanto necessarie del file MIDI.

La prima struttura: il blocco d'intestazione

La prima struttura, posta solo all'inizio del file MIDI e composta sempre da 14 byte, è chiamata: mw2wMidi Track header chunk (mw3aMThd), ossia mw3qBlocco d'intestazione. Alcuni byte di questo Blocco-traccia d'intestazione del file MIDI sono invariabili. In un file esiste un solo blocco mw3gMidi Track header (mw3wMThd). Il mw4aBlocco d'Intestazione (mw4qHeader Chunk) specifica alcune informazioni di base e generiche relative ai dati presenti nel file. Il mw4gMidi Track header chunk è costituito dai seguenti byte in notazione esadecimale:

mw5q4D 54 68 64 00 00 00 06 00 0n 00 nn 0n nn

dove mw5wn rappresenta i byte di valore variabile.

mw6q4D 54 68 64 = (in codice ASCII: MThd) definisce il mw6gchunk come mw6wMidi Track header ed è il mw7ablocco d'intestazione, formato sempre da 4 byte invariabili, che definisce questa traccia come blocco mw7qheader.

mw7w00 00 00 06 = definisce la lunghezza in byte della restante parte del blocco mw8aheader. Indica che immediatamente dopo vi sono 6 byte restanti.

mw8g00 0n = questi due byte indicano il tipo di file MIDI– mw8wsmf: mw9aStandard Midi File. Per il formato 0 n = 0; per il formato 1 n = 1; per il formato 2 n = 2:

• Formato 0: le tracce di un brano sono fuse in una singola che contiene tutte le informazioni degli eventi di tutte le tracce originarie del brano.
• Formato 1: le tracce sono memorizzate singolarmente condividendo gli stessi valori di tempo e metrica. La velocità del brano viene inserita nella prima traccia che fa da riferimento a tutte le altre. Il formato 1 permette la gestione multitraccia di un brano nei sequencer e riproduttori di file MIDI ed è il formato più usato.
• Formato 2: le tracce sono gestite indipendentemente l'una dall'altra, anche per il tempo e per la metrica.

mw-g00 nn = questi due byte indicano quante tracce (del tipo MTkr) sono presenti nel file MIDI.

mw-a0n nn = questi ultimi due byte indicano il “numero di impulsi (o risoluzione) per nota da ¼”: PPQN (Pulse Per Quarter Note). Ogni impulso è chiamato “Tick” (istante).

Per esempio 01 80 = 384 PPQN (una nota da ¼ sarà formata da 384 PPQN, ossia da 384 tick). Il PPQN condiziona per l'intero file MIDI il Tempo Delta, in quanto il PPQN è un'unità di misura, un metro di riferimento che definisce in “numero di impulsi per nota da ¼” il Tempo Delta. Dunque, la durata di due o più Tempi Delta aventi identici valori in byte, ma all'interno di diversi PPQN, sarà diversa.

Le altre strutture successive al blocco d'intestazione

Dopo l'intera descrizione del mwaqaMidi Track header chunk (Blocco primario d'intestazione) seguono le Tracce (almeno una) contenenti gli eventi del MIDI. Ciascuna traccia è composta da un'intestazione formata sempre da 4 byte invariabili:

mwaqi4D 54 72 6B = (in codice ASCII: MTrk) definisce il chunk come mwaqmMidi Track, ossia lo identifica come mwaqqblocco di traccia.

Qualora nel file sia presente più di una traccia MTrk, la prima traccia MTrk, chiamata anche “mwaqyTraccia del Tempo”, contiene solitamente i Dati Meta, separati fra loro e da altri eventuali eventi MIDI dal Tempo Delta TΔ, relativi all'indicazione della suddivisione della misura, del tempo metronomico e della tonalità della scala. Le tracce successive, per esempio una per ogni strumento musicale diverso, contengono tutti gli altri eventi midi, e possono contenere anche eventi Dati Meta nel caso di cambio dei valori dei Dati Meta iniziali contenuti nella prima traccia MTrk, ossia nella mwaqcTraccia del Tempo.

Dopo i 4 byte identificativi della traccia seguono sempre altri 4 byte:

mwaqo00 00 00 nn = indicano quanti byte successivi vi sono sino alla fine della traccia. Dopo i descritti 4 byte è sempre presente il mwaqsTempo Delta (mwaqwDelta Time), espresso con uno o più byte. Seguono gli Eventi contenuti nella traccia, Eventi Midi, Eventi SysEx, Eventi Dati Meta che sono la codifica informatica del un brano, la partitura musicale.

Tutti gli Eventi sono sempre separati fra loro da un valore di mwaq4Tempo Delta variabile a seconda delle necessità e dello svolgersi del brano.

Il Tempo Delta – TΔ

All'interno delle tracce mwareMTrk fra mwariogni Evento viene sempre inserito il dato temporale mwarmTempo Delta (mwarqDelta-time), che esprime in byte la durata dell'intervallo temporale tra due singoli eventi, ovvero è la durata in PPQN tra i due eventi (…EVENTO1…mwaru…EVENTO2…). Se, ad esempio, TΔ = 00, allora gli eventi avvengono simultaneamente.

Dunque, per far suonare due note simultaneamente si ha per esempio: 90 48 64 00 90 4C 64 = Do e Mi che suonano contemporaneamente.

Il Tempo Delta è fondamentale per la durata delle note e quindi per la creazione delle figure musicali. Più precisamente i valori del TΔ sono stabili; le figure musicali variano la propria corrispondenza al TΔ in base alla risoluzione PPQN. Ad esempio, per PPQN = 01 80 la semiminima ha TΔ = 83 00; invece per un PPQN = 60 la semiminima ha TΔ = 60.

Durata in microsecondi di un impulso-tick

La durata in microsecondi di un impulso-tick per ¼ di nota si ottiene dalla seguente operazione:

(mwarw60 000 000 / bpm) / PPQN

dove mwar4bpm rappresenta i "mwar8battiti per minuto" (tempo metronomico) e mwasaPPQN è la "mwaserisoluzione in Impulsi per nota da ¼" come impostata nel mwasichunk MThd.

I dati Meta

I Dati Meta (Meta Data) sono informazioni non fondamentali del file MIDI e, se presenti, sono contenute nelle tracce MTrk. Si identificano dal primo byte di valore sempre uguale a FF, e sono costituiti da più byte.

I principali Dati Meta:

mwascFF 58 04 xx yy 60 08 – mwasgMetro della misura (Tempo di Suddivisione della misura):

• FF: definisce il tipo di evento (ossia che è un Dato Meta);
• 58: identifica il tipo di Dato Meta (il Dato Meta che definisce la mwaswsuddivisione della misura);
• 04: numero di byte contenuti nella parte seguente (mwas4sempre 4);
• 0x: (byte variabile) numeratore del rapporto della suddivisione della misura (inserire il corrispondente numero in esadecimale: ad esempio per ¾ = 03),
• 0y: denominatore (il numero da inserire è quello, espresso in esadecimali, della potenza necessaria per elevare il numero 2 al numero del denominatore prescelto):

· per indicare i quarti: y = 2 (poiché 2mwatm2 = 4);
· per indicare gli ottavi: y = 3 (poiché 2mwatu3 = 8);
· per indicare i sedicesimi: y = 4 (poiché 2mwatc4 = 16 );
· per indicare i mezzi (ad esempio mwatk3⁄mwato2): y = 1 (poiché 2mwats1 = 2 );
· per indicare l'unità (ad esempio mwat02⁄mwat41): y = 0;

• 60: definisce che ci sono 96 clock midi in una nota da ¼;
• 08: definisce che ci sono 8 note da mwaui1⁄mwaum32 in una nota ¼.

mwauuFF 51 03 xx xx xx – mwauyTempo metronomico (velocità del brano: indica quanti microsecondi dura un quarto di nota):

• FF: definisce il tipo di evento (ossia che è un Dato Meta);
• 51: identifica il tipo di Dato Meta (Dato Meta che definisce il Tempo metronomico);
• 03: quantità di byte contenuti nella parte seguente del Dato Meta (sempre 3);
• xx xx xx: il tempo metronomico prescelto ottenuto rispetto alle possibili suddivisioni di misura sempre secondo i seguenti calcoli:

| Suddivisione della misura | Calcolo |
|---|---|
| n ⁄ 1 | ( 60 000 000 / 4) / nb |
| n ⁄ 2 | ( 60 000 000 / 2) / nb |
| n ⁄ 4 | 60 000 000 / nb |
| n ⁄ 8 | ( 60 000 000 × 2) / nb |
| n ⁄ 16 | ( 60 000 000 × 4) / nb |

mwaxemwaxi60 000 000 rappresenta la quantità di microsecondi per ogni nota da un quarto;

mwaxunb è il numero prescelto di battiti al minuto del metronomo (tempo metronomico prescelto).

Il Meta evento relativo al “mwaxcTempo metronomico” va sempre posto dopo il Meta evento della “mwaxgSuddivisione della misura”.

In caso di cambio di suddivisione della misura si deve mwaxosempre ricalcolare il tempo metronomico della nuova suddivisione sulla base della precedente tabella.

mwaxwFF 59 02 xx yy – mwax0Chiave di Tonalità (indica la Tonalità della scala):

• FF: definisce il tipo di evento (ossia che è un Dato Meta);
• 59: identifica il tipo di Dato Meta (Dato Meta che definisce la Chiave di Tonalità);
• 02: quantità di byte contenuti nella parte seguente (sempre 2);
• xx: numero di mwaymaccidenti in mwayqchiave:

• yy: definisce la tonalità: Maggiore yy = mwakg00 oppure la corrispondente Minore yy = mwakk01.

Il Meta-Dato FF 59, relativo alla mwaksChiave di tonalità della scala, è riconosciuto da alcuni programmi, solo se esso è presente nella mwakwtraccia del tempo e lì lo salvano. Altri sequencer lo leggono solo se presente nelle tracce successive a quella del mwak0tempo e in quelle lo salvano. Altri sequencer ancora riconoscono questo Dato Meta ovunque esso sia. Il Dato Meta FF 59 può essere considerato mwak4opzionale poiché la nota alterata è definita in realtà mwak8non da questo Dato Meta, bensì dal secondo byte componente l'evento MIDI “mwalaNOTE ON”.

Altri Dati Meta utili sono:

mwalmFF 03 ll xxxx – mwalqNome della Traccia:

• FF: definisce il tipo di evento (ossia che è un Dato Meta);
• 03: identifica il tipo di Dato Meta (Dato Meta che definisce il Nome della Traccia);
• ll: la lunghezza in byte dell'evento (esprime la quantità di caratteri presenti nella stringa alfanumerica che dà il nome alla traccia);
• xxxx: il testo reale che sarà visualizzato presso la traccia evidenziata del sequencer.

mwalsFF 05 ll xxxx – mwalwTesto del canto (lyric):

• FF: definisce il tipo di evento (ossia che è un Dato Meta);
• 05: identifica il tipo di Dato Meta (Dato Meta che esprime il testo del canto presente in un brano musicale);
• ll: la lunghezza in byte dell'evento (esprime la quantità di caratteri presenti nella stringa alfanumerica);
• xxxx: il testo reale che può essere formato da una sola stringa alfanumerica di qualunque lunghezza.

Esempio di utilizzo di questo Meta evento (testo da immettere in corrispondenza di una nota): «mwammPro -mwamq » (ossia: mwamuP+mwamyr+mwamco+[spazio]+ mwamg- ) la struttura sarà ... | TΔ | Note ON | TΔ | FF 05 05 mwamkmwamo50 72 6F 20 2D | TΔ | Note OFF | TΔ | ... (in verde i valori esadecimali del codice necessari per ottenere la scrittura del testo "mwamsPro –".

I principali eventi MIDI

mwam49n hh vv – mwam8Note ON

• 9 definisce il tipo di Status byte (mwaniNote ON) e n è il numero che definisce il Canale a cui applicare lo status byte, il primo byte 9n ordina che si inizi a suonare sul canale n la nota definita nel successivo secondo byte hh;
• hh definisce il numero della nota da far suonare (da 0 a 127; pertanto esso è un mwanqMessaggio di Dati);
• vv la velocità di tocco (mwanyvelocity)(forza applicata sullo strumento nell'atto di suonare), (da 0 a 127; pertanto esso è un mwancMessaggio di Dati).

mwank8n hh vv – mwanoNote OFF

• 8 definisce il tipo di Status byte (Note OFF) e n è il numero che definisce il Canale a cui applicare lo status byte (il primo byte 8 ordina che cessi di suonare sul canale n la nota definita nel successivo secondo byte hh);
• hh definisce il numero della nota da far cessare (da 0 a 127; pertanto esso è un mwan4Messaggio di Dati);
• vv la velocità di rilascio (mwaoavelocity), ossia la forza applicata sullo strumento nell'atto di cessare di suonare (da 0 a 127; pertanto esso è un mwaoeMessaggio di Dati).

Esempio: 80 45 64 (al canale 1 viene spenta in quel momento la nota n. 45 [ossia la n. 69 in decimale = LA a 440 hrz] con velocità 64).

Il Canale 10 è riservato nel modulo GM a suoni percussivi.

mwaouPause

immediatamente dopo il “NOTE OFF” viene inserito un Tempo Delta di valore pari alla figura di pausa corrispondente. Se è prevista una pausa all'inizio del brano, il TΔ è inserito innanzi al mwaocprimo evento “NOTE ON” della traccia MTrk interessata.

mwaokAn aa vv – mwaooAftertouch Polyphonic:

• A definisce il tipo di Status byte e n è il numero che definisce il Canale a cui applicare lo status byte; questo primo byte ordina che si applichi un'ulteriore pressione su una nota che sta suonando e su cui si è già esercitata una pressione iniziale (velocity);
• aa si riferisce alla nota su cui si intende applicare l'ulteriore pressione (da 0 a 127);
• vv specifica la quantità di pressione aggiuntiva da applicare a quella nota (da 0 a 127).

mwapaBn bb vv – mwapeControl Change:

• B definisce il tipo di Status byte (Control change: usato per ottenere particolari effetti) e n è il numero che definisce il Canale a cui applicare lo status byte; questo primo byte ordina che si applichi sul canale n l'evento Control Change definito nel successivo secondo byte bb;
• bb definisce i dati specifici, mwapuMessaggi di controller (data byte), dello status byte (da 0 a 127; pertanto esso è un Messaggio di Dati): determina quale tipo di controller inviare (es.: 07 = Volume; 0A = Pan; 5B = Riverbero; etc.).
• vv definisce il valore da 00 a 7F (da 0 a 127 in decimale, pertanto è un mwapcMessaggio di Dati) da applicare al Messaggio di controller per variarne le caratteristiche.

Esempio: B0 07 64 Imposta il volume generale della traccia da quel momento a 64 hex, ossia a 100 in decimale.

mwapoCn cc – mwapsProgram Change:

• C definisce il tipo di byte di Stato (Status byte), ossia di quale Evento MIDI si tratta (in questo caso Program change: usato per far suonare uno strumento musicale), e n è il numero che definisce il Canale a cui applicare lo status byte; questo primo byte ordina che si applichi sul canale n l'evento Program Change definito nel successivo secondo byte cc;
• cc definisce i dati specifici dello status byte da 00 a 7F (da 0 a 127, pertanto è un mwap8Messaggio di Dati): determina quale strumento musicale far suonare.

Esempio: C0 05: strumento della traccia impostato da quel momento a Piano elettrico 2.

mwaqiDn dd – mwaqmChannel Aftertouch

• D definisce il tipo di Status byte (mwaqyChannel Aftertouch) e n è il numero che definisce il Canale a cui applicare lo status byte; questo primo byte ordina che sia aumentata la velocità di tocco delle note attive, quindi viene aumentata la forza iniziale applicata sulle note che sta già suonando appartenenti ad un medesimo canale;
• dd definisce la quantità di ulteriore velocità di tocco aggiunta alla nota che già sta suonando (da 0 a 127, pertanto è un Messaggio di Dati).

Esempio: D0 64 al canale 1 viene applicato da quel momento l'Aftertouch di valore uguale a 100.

mwaqoEn ee zz – mwaqsPitch Bend Change

• E definisce il tipo di Status byte (Pitch Bend Change [Pitch Wheel]) e n è il numero che definisce il Canale a cui applicare lo status byte; questo primo byte ordina che sia modificata la frequenza della nota;
• ee definisce il 1° valore (da 0 a 127, pertanto è un Messaggio di Dati);
• zz definisce il 2° valore (da 0 a 127, pertanto è un Messaggio di Dati).

Esempio: E0 60 64: al canale 1 viene applicato da quel momento il mwarePich Wheel con primo valore uguale a 60, ossia 96 in decimale, e secondo valore uguale a 64, ossia 100 in decimale).

Chiusura della Traccia

Ogni traccia MTkr termina con un evento di chiusura formato da due byte: FF 2F 00, preceduti sempre da un valore di TΔ. L'ultimo byte uguale a zero rappresenta la lunghezza del meta-evento, la quale, non essendo presenti dati ulteriori, è appunto pari a zero. Ovviamente anche la “mwarqTraccia del Tempo” termina con il comando FF 2F 00 (chiusura della traccia).

Analisi pratica di un breve file Midi

Di seguito verrà mostrato e commentato il codice esadecimale di un semplice e breve file Midi (le varie istruzioni del protocollo Midi sono visualizzate in righe da 16 valori esadecimali, tranne l'ultima da 17, e distinte l'una dopo l'altra con caratteri in grassetto e non):

4D 54 68 64 00 00 00 06 00 01 00 02 01 80 4D 54
72 6B 00 00 00 19 00 FF 58 04 03 02 60 08 00 FF
51 03 09 27 C0 00 FF 59 02 01 00 00 FF F2 00 4D
54 72 6B 00 00 00 2A 00 B0 07 64 00 B0 0A 30 00
B0 5B 40 00 B0 5D 10 00 C0 04 00 90 45 64 86 00
80 45 64 81 40 90 42 64 81 40 80 42 64 00 FF 2F 00

· · ·

COMMENTOmwas4 :

mwateChunk Header (mwatiMThd)mwatm:

4D 54 68 64 00 00 00 06 00 01 00 02 01 80

• 4D 54 68 64mwatg : intestazione di 4 byte del mwatkMIDI Track header chunk
• 00 00 00 06mwats : questi 4 byte informano che seguiranno 6 byte di dati sino alla fine di questo mwatwchunk header
• 00 01mwat4 : questi 2 byte informano che il file MIDI è del formato (tipo) 1
• 00 02mwaua : questi 2 byte informano che dopo il MThd seguiranno 2 blocchi di traccia mwaueMTrk
• 01 80mwaum : informazione che specifica la risoluzione in impulsi per quarto di nota PPQN (in questo caso per ogni nota da un quarto vi sono 384 impulsi).

mwauy1° Chunk MTrk (cosiddetta mwaucTraccia del Tempo)mwaug:

4D 54
72 6B 00 00 00 19 00 FF 58 04 03 02 60 08 00 FF
51 03 09 27 C0 00 FF 59 02 01 00 00 FF 2F 00

• 4D 54 72 6Bmwava : intestazione di 4 byte del mwaveMIDI Track chunk (informano che il blocco è una traccia successiva al MThd e che si tratta dunque di una mwaviMTrk)
• 00 00 00 19mwavq : questi 4 byte informano che seguiranno 25 byte di dati fino alla fine di questa traccia (mwavutrack chunk)
• 00mwavc : Tempo Delta. Questi 2 byte informano che il successivo evento rispetto al precedente si verificherà dopo zero PPQN, quindi immediatamente (senza alcun ritardo)
• FF 58 04 03 02 60 08mwavk : evento Meta Dato. Questo Meta evento informa che le misure delle tracce musicali saranno suddivise in ¾
• 00mwavs : Tempo Delta pari a zero PPQN. Il prossimo evento (FF 51 03 09 27 C0) avverrà dopo una quantità di tempo zero PPQN rispetto all'evento precedente (FF 58 04 03 02 60 08)
• FF 51 03 09 27 C0mwav0 : evento Meta Dato. Questo Meta evento informa che la velocità metronomica del brano midi è impostata a 100 battiti al minuto
• 00mwav8 : Tempo Delta pari a zero PPQN
• FF 59 02 01 00mwawe : evento Meta Dato. Questo Meta evento informa che la tonalità della scala musicale possiede un diesis in chiave (SOL maggiore)
• 00mwawm : Tempo Delta pari a zero PPQN
• FF 2F 00mwawu : questi tre byte informano che ha termine il blocco traccia

mwawg2° Chunk MTrk (seconda traccia)mwawk:

4D
54 72 6B 00 00 00 2A 00 B0 07 64 00 B0 0A 30 00
B0 5B 40 00 B0 5D 10 00 C0 04 00 90 45 64 86 00
80 45 64 81 40 90 42 64 81 40 80 42 64 00 FF 2F 00

• 4D 54 72 6Bmwaxu : intestazione di 4 byte del mwaxyMIDI Track chunk (informano che il blocco è una traccia successiva al MThd e che si tratta dunque di una mwaxcMTrk)
• 00 00 00 2Amwaxk : questi 4 byte informano che seguiranno 51 byte di dati fino alla fine di questa traccia (mwaxotrack chunk)
• 00mwaxw : Tempo Delta pari a zero PPQN
• B0 07 64mwax4 : Evento Midi: Control Change n. 7 (Volume). Questo dato di Control Change di tre byte informa che il volume generale delle note presenti nella traccia è impostato da questo momento a 64 (100 in decimale)
• 00mwaya : Tempo Delta pari a zero PPQN
• B0 0A 30mwayi : Evento Midi: Control Change n. 10 (Panpot). Questo dato di Control Change di tre byte informa che il Pan (ossia il bilanciamento dei volumi tra i due canali stereo è impostato da questo momento e per questa traccia a 30 [48 decimale])
• 00mwayq : Tempo Delta pari a zero PPQN
• B0 5B 40mwayy : Evento Midi: Control Change n. 91 (Riverbero). Questo dato di Control Change di tre byte informa che il Riverbero è impostato da questo momento e per questa traccia a 40 (64 decimale)
• B0 5D 10mwayg : Evento Midi: Control Change n. 93 (Chorus). Questo dato di Control Change di tre byte informa che il Chorus è impostato da questo momento e per questa traccia a 10 (16 decimale)
• 00mwayo : Tempo Delta pari a zero PPQN
• C0 04mwayw : Evento MIDI: Program Change n. 4. Questo dato di Program Change di due byte informa che da quel momento sarà usato come strumento musicale presente al num. 4 (Piano Elettrico 1) della lista degli strumenti del Program Change
• 00mway4 : Tempo Delta pari a zero PPQN
• 90 45 64mwaza : Evento MIDI: mwazeNOTE ON. Questo dato di tre byte informa che deve essere accesa (cominciare a suonare) la nota num. 45 esad. (LA) con una velocity (mwazivelocità di pressione) avente valore pari a 64 (100 decimale)
• 86 00mwazq : Tempo Delta pari a 86 00 PPQN (con risoluzione 01 80 quello è il TΔ della minima)
• 80 45 64mwazy : Evento MIDI: mwazcNOTE OFF. Questo dato di tre byte informa che deve essere spenta (cessare di suonare) la nota num. 45 esad. (LA) con una velocity (velocità di pressione) avente valore pari a 64 (100 decimale)
• 81 40mwazk : Tempo Delta pari a 81 40 PPQN (è il TΔ della croma)
• 90 42 64mwazs : Evento MIDI: mwazwNOTE ON. Questo dato di tre byte informa che deve essere accesa (cominciare a suonare) la nota numero 42 esadecimale (FA♯) con una velocity (mwaz0velocità di pressione) avente valore pari a 64 (100 decimale)
• 81 40mwaz8 : Tempo Delta pari a 81 40 PPQN (è il TΔ della croma)
• 80 42 64mwa0e : Evento MIDI: NOTE OFF. Questo dato di tre byte informa che deve essere spenta (cessare di suonare) la nota numero 42 esadecimale (FA♯) con una velocity (velocità di pressione) avente valore pari a 64 (100 decimale)
• 00mwa0m : Tempo Delta pari a zero PPQN
• FF 2F 00mwa0u : questi tre byte informano che ha termine il blocco traccia.

La visualizzazione in valori esadecimali del codice di un file Midi può essere effettuata mediante un programma editor esadecimale di file.

Editor MIDI

• mwa0oLogic Pro, per mwa0sMac OS
• mwa00Rosegarden, per mwa04Linux (programma con licenza mwa08mwa1aopen source mwa1eGNU GPL)
• mwa1mCubase, per mwa1qMicrosoft Windows e mwa1uMac OS
• mwa1cSONAR
• mwa1kNuendo
• mwa1sGuitar Pro, multipiattaforma
• mwa10MuseScore (programma con licenza mwa14open source GNU GPL)

Note

cite-note-11. mwa2umwa2ymwa2cAssolo. L’impresa one man show di Baglioni, su mwa2gClaudio Baglioni, 18 giugno 2025. mwa2kURL consultato il 12 gennaio 2026.
cite-note-22. mwa20Demented Burrocacao, mwa24mwa28Claudio Baglioni, Man Machine, su mwa3aVICE, 7 gennaio 2014. mwa3eURL consultato il 12 gennaio 2026.
cite-note-33. mwa3u(mwa3ymwa3cEN) mwa3gmwa3kThe `USI`, or Universal Synthesizer Interface, su mwa3oaes.org. mwa3sURL consultato l'8 maggio 2026.
cite-note-44. mwa38(mwa4amwa4eEN) Joel Chadabe, mwa4imwa4mThe Electronic Century Part IV: The Seeds of the Future, su mwa4qemusician.com, 1º maggio 2001. mwa4uURL consultato l'8 maggio 2026 mwa4y(archiviato dall'mwa4curl originale il 28 settembre 2012).
cite-note-55. mwa4sMaurizio Zoccola, mwa4wmwa40MIDI – Musical Instrument Digital Interface, su mwa44ageofaudio.com, Antonio Campeglia, 18 settembre 2012. mwa48URL consultato l'8 maggio 2026.
cite-note-66. mwa5m(mwa5qmwa5uEN) mwa5ymwa5cMIDI Association and MIDI Manufacturers Association, su mwa5gloc.gov. mwa5kURL consultato l'8 maggio 2026.
cite-note-77. mwa50Mauro Notarianni, mwa54mwa58In arrivo lo standard MIDI 2.0, su mwa6amacitynet.it, 21 gennaio 2019. mwa6eURL consultato l'8 maggio 2026.
cite-note-88. mwa6uStefano Airoldi, mwa6ymwa6cNAMM 2020 - MIDI 2.0: è stato approvato il nuovo protocollo!, su mwa6gsmstrumentimusicali.it, 21 gennaio 2020. mwa6kURL consultato l'8 maggio 2026.

Bibliografia

• mwa60(DE) Christian Braut, Das MIDI-Buch, Düsseldorf, Sybex, 1993, ISBN 3-8155-7023-9.
• mwa68Luca A. Ludovico, MIDI. Una guida al protocollo, alle estensioni e alla programmazione, Milano, Milano University Press, 2021, DOI:10.13130/milanoup.27, ISBN 979-12-8032-511-2.
• mwa7e(EN) Peter Manning, Electronic and Computer Music, Oxford, Oxford University Press, 1985.
• mwa7mBen Milstead, Home recording. Guida completa, Apogeo, 2003.
• mwa7uEnrico Paita, Computer e musica. Manuale completo, Jackson Libri, 1997.
• mwa7cDavid M. Huber e Robert E. Runstein, Manuale della registrazione sonora, 1999.
• citeref-mcmicrocomputer-124Midi: la musica e il computer (JPG), in MCmicrocomputer, n. 124, Roma, Technimedia, dicembre 1992, pp. 198-199, ISSN 1123-2714.
• citeref-mcmicrocomputer-126I collegamenti MIDI (JPG), in MCmicrocomputer, n. 126, Roma, Technimedia, febbraio 1993, pp. 214-217, ISSN 1123-2714.
• citeref-mcmicrocomputer-127Il protocollo MIDI (JPG), in MCmicrocomputer, n. 127, Roma, Technimedia, marzo 1993, pp. 194-196, ISSN 1123-2714.
• citeref-mcmicrocomputer-134Il formato standard MIDI File (JPG), in MCmicrocomputer, n. 134, Roma, Technimedia, novembre 1993, pp. 250-252, ISSN 1123-2714.

Voci correlate

• mwa8eBlack MIDI
• mwa8kSoundFont

Altri progetti

Altri progetti

• Wikimedia Commons

• Wikimedia Commons contiene immagini o altri file su Musical Instrument Digital Interface

Collegamenti esterni

• mwa84(EN) About us, su midi.org, MIDI Manufacturers Association. URL consultato l'8 maggio 2026.
• mwa9a(EN) Home, su midiplugins.com, Christopher Adol, 23 novembre 2008. URL consultato l'8 maggio 2026.